package done.easy_601_700;

import org.junit.Test;

import static com.study.util.LogUtil.info;

/**
 * 680. Valid Palindrome II 验证回文字符串 Ⅱ
 * <p>
 * 给定一个非空字符串 s，最多删除一个字符。判断是否能成为回文字符串。
 * <p>
 * 示例 1:
 * 输入: "aba"
 * 输出: True
 * 示例 2:
 * 输入: "abca"
 * 输出: True
 * 解释: 你可以删除c字符。
 */
@SuppressWarnings("all")
public class ValidPalindromeII {

    public boolean validPalindrome(String s) {
        // 190412 first
        return false;
    }

    @Test
    public void test() {
        info("true  -> {}", validPalindrome("aabaca"));
        info("true  -> {}", validPalindrome("aba"));
        info("false -> {}", validPalindrome("abcda"));
    }
}
















































/*
public boolean validPalindrome(String s) {
    // 可以删除或者不删除字符
    return validPalindrome(s, 0, s.length() - 1, 0);
}

public boolean validPalindrome(String s, int i, int j, int del) {
    // 可以删除或者不删除字符
    while (i < j) {
        // 如果相等就像中间收缩
        // 否则尝试删除第一个不相等的字符
        if (s.charAt(i) == s.charAt(j)) {
            i++;
            j--;
        } else {
            if (del++ >= 1)
                return false;

            // 删除之后  i+1  或者 j-1 都是一种删除
            // 递归的判断就行了
            return validPalindrome(s, i+1, j,   del)
                || validPalindrome(s, i,   j-1, del);
        }
    }
    return true;
}
*/
